<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>递归求斐波那契数列</title>
</head>

<body>
  <script>
    // 利用递归函数求斐波那契数列(也可以称为兔子序列): 前两项相加就是后一项的和
    // 例: 1 1 2 3 5 8 13 21 ...
    // 问: 用户输入一个数字n就可以求出这个数字对应的兔子序列值?
    // 举例:
    // 1. 用户输入1，求出斐波那契数列中的1 
    // 2. 用户输入4，求出斐波那契数列中的3
    // 3. 用户输入6，求出斐波那契数列中的8

    function fn(n) {
      if (n == 1 || n == 2) {
        return 1;
      }
      // n - 1 ： 求前一项的返回值 一直倒推至第1项或者第2项时会有明确返回值输出
      // 这时再将刚刚倒推的函数返回值累加则返回第(n-1)项返回值
      // n - 2 ： 求前两项的返回值 一直倒推至第1项或者第2项时会有明确返回值输出 
      // 这时再将刚刚倒推的函数返回值累加则返回第(n-2)项返回值
      return fn(n - 1) + fn(n - 2);
    }

    console.log(fn(4));

  </script>
</body>

</html>